In a clustered or distributed application server domain environment, some form of data replication is useful in order to distribute configuration and deployment information from an administration (Admin) server to the managed servers within its domain. The typical requirements for such a data replication process is to be able to distribute large data items over point-to-point connections (TCP), that provides for a measure of flow control. Data replication allows managed servers to persistently cache data on local disks, and speeds server startup by reducing the amount of data to be transferred. Storing data locally on each server also allows independent server startup and/or restart when the Admin server is unavailable, unreachable, or in a failed condition.
Besides a simple copying of data from one machine to another, updates and changes to the domain configuration repository need to be distributed to the servers to which the changes are applicable in a manner that maintains the consistency of configuration of the domain. Some changes need to be consistent across the entire domain while others need to be consistent within clusters. Consistency is also crucial to the application deployment and redeployment process. This is because services like availability, failover, load-balancing & in-memory replication are scoped to a cluster and not the entire domain.